package event

import (
	"github.com/sirupsen/logrus"
)

type PushFailedHandler func(event PbEvent, blockKey string)

// 事件推送者
type Pusher interface {
	// 设置日志引擎
	SetLogger(logger logrus.Logger)

	// 同步推送
	// @param event 事件
	// @queueName 推送的目标队列名
	// @blockKey 分片命中规则
	SyncPush(event PbEvent, queueName, blockKey string) error

	// 异步推送
	// @param event 事件
	// @queueName 推送的目标队列名
	// @blockKey 分片命中规则
	Push(event PbEvent, queueName, blockKey string)
}
